Proving Productivity in Infinite Data Structures
نویسندگان
چکیده
For a general class of infinite data structures including streams, binary trees, and the combination of finite and infinite lists, we investigate the notion of productivity. This generalizes stream productivity. We develop a general technique to prove productivity based on proving context-sensitive termination, by which the power of present termination tools can be exploited. In order to treat cases where the approach does not apply directly, we develop transformations extending the power of the basic approach. We present a tool combining these ingredients that can prove productivity of a wide range of examples fully automatically.
منابع مشابه
Termination of canonical context-sensitive rewriting and productivity of rewrite systems
Termination of programs, i.e., the absence of infinite computations, ensures the existence of normal forms for all initial expressions, thus providing an essential ingredient for the definition of a normalization semantics for functional programs. In lazy functional languages, though, infinite data structures are often delivered as the outcome of computations. For instance, the list of all prim...
متن کاملCosmological argument in proving the existence of God from Imam Khomeini's (RA) point of view
This article reviews Cosmological argument in proving the existence of God from the viewpoint of Imam Khomeini (RA). At first, various views to the existence of God are reviewed and then its etymology will be reviewed. Cosmological argument proves God through universal premises about truth and world and and the Movement Argument, Casual Argument and Necessity and Possibility Argument are dif...
متن کاملتوسعه روش SL با ترتیب KBO برای اثبات خودکار پایانپذیری سیستم بازنویسی ترم - مقاله برگزیده هفدهمین کنفرانس ملی انجمن کامپیوتر ایران
The term rewriting systems (TRSs) is an abstract model of functional languages. The termination proving of TRSs is necessary for confirming accuracy of functional languages. The semantic labeling (SL) is a complete method for proving termination. The semantic part of SL is given by a quasi-model of the rewrite rules. The most power of SL is related to infinite models that is difficult f...
متن کاملComplexity of Fractran and Productivity
In functional programming languages the use of infinite structures is common practice. For total correctness of programs dealing with infinite structures one must guarantee that every finite part of the result can be evaluated in finitely many steps. This is known as productivity. For programming with infinite structures, productivity is what termination in well-defined results is for programmi...
متن کاملStream Productivity by Outermost Termination
Streams are infinite sequences over a given data type. A stream specification is a set of equations intended to define a stream. A core property is productivity: unfolding the equations produces the intended stream in the limit. In this paper we show that productivity is equivalent to termination with respect to the balanced outermost strategy of a TRS obtained by adding an additional rule. For...
متن کامل